#!/usr/local/bin/php -q
<?php
//PHPTelnet  class  start
/*
PHPTelnet 1.1
by Antone Roundy
adapted from code found on the PHP website
public domain
*/

class PHPTelnet {
        var $show_connect_error=1;

        var $use_usleep=0;      // change to 1 for faster execution
                // don't change to 1 on Windows servers unless you have PHP 5
        var $sleeptime=125000;
        var $loginsleeptime=1000000;

        var $fp=NULL;
        var $loginprompt;

        var $conn1;
        var $conn2;

        /*
        0 = success
        1 = couldn't open network connection
        2 = unknown host
        3 = login failed
        4 = PHP version too low
        */
        function Connect($server,$user,$pass) {
                $rv=0;
                $vers=explode('.',PHP_VERSION);
                $needvers=array(4,3,0);
                $j=count($vers);
                $k=count($needvers);
                if ($k<$j) $j=$k;
                for ($i=0;$i<$j;$i++) {
                        if (($vers[$i]+0)>$needvers[$i]) break;
                        if (($vers[$i]+0)<$needvers[$i]) {
                                $this->ConnectError(4);
                                return 4;
                        }
                }
                $this->Disconnect();

                if (strlen($server)) {
                        if (preg_match('/[^0-9.]/',$server)) {
                                $ip=gethostbyname($server);
                                if ($ip==$server) {
                                        $ip='';
                                        $rv=2;
                                }
                        } else $ip=$server;
                } else $ip='127.0.0.1';

                if (strlen($ip)) {
                        if ($this->fp=fsockopen($ip,23)) {
                                fputs($this->fp,$this->conn1);
                                $this->Sleep();

                                fputs($this->fp,$this->conn2);
                                $this->Sleep();
                                $this->GetResponse($r);
                                $r=explode("\n",$r);
                                $this->loginprompt=$r[count($r)-1];

                                fputs($this->fp,"$user\r");
                                $this->Sleep();

                                fputs($this->fp,"$pass\r");
                                if ($this->use_usleep) usleep($this->loginsleeptime);
                                else sleep(1);
                                $this->GetResponse($r);
                                $r=explode("\n",$r);
                                if (($r[count($r)-1]=='')||($this->loginprompt==$r[count($r)-1])) {
                                        $rv=3;
                                        $this->Disconnect();
                                }
                        } else $rv=1;
                }

                if ($rv) $this->ConnectError($rv);
                return $rv;
        }

        function Disconnect($exit=1) {
                if ($this->fp) {
                        if ($exit) $this->DoCommand('exit',$junk);
                        fclose($this->fp);
                        $this->fp=NULL;
                }
        }

        function DoCommand($c,&$r) {
                if ($this->fp) {
                        fputs($this->fp,"$c\r");
                        do {$this->Sleep();} while($this->GetResponse($r)!=1);
//                      while($this->GetResponse($r)!=1){sleep(1);} ;
                        $r=preg_replace("/^.*?\n(.*)\n[^\n]*$/","$1",$r);
                }
                return $this->fp?1:0;
        }

        function GetResponse(&$r) {
                $r='';
                do {
                        $r.=fread($this->fp,1000);
                        $s=socket_get_status($this->fp);
                } while ($s['unread_bytes']);
                return 1;
        }

        function Sleep() {
                if ($this->use_usleep) usleep($this->sleeptime);
                else sleep(1);
        }

        function PHPTelnet() {
                $this->conn1=chr(0xFF).chr(0xFB).chr(0x1F).chr(0xFF).chr(0xFB).
                        chr(0x20).chr(0xFF).chr(0xFB).chr(0x18).chr(0xFF).chr(0xFB).
                        chr(0x27).chr(0xFF).chr(0xFD).chr(0x01).chr(0xFF).chr(0xFB).
                        chr(0x03).chr(0xFF).chr(0xFD).chr(0x03).chr(0xFF).chr(0xFC).
                        chr(0x23).chr(0xFF).chr(0xFC).chr(0x24).chr(0xFF).chr(0xFA).
                        chr(0x1F).chr(0x00).chr(0x50).chr(0x00).chr(0x18).chr(0xFF).
                        chr(0xF0).chr(0xFF).chr(0xFA).chr(0x20).chr(0x00).chr(0x33).
                        chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0x2C).chr(0x33).
                        chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0xFF).chr(0xF0).
                        chr(0xFF).chr(0xFA).chr(0x27).chr(0x00).chr(0xFF).chr(0xF0).
                        chr(0xFF).chr(0xFA).chr(0x18).chr(0x00).chr(0x58).chr(0x54).
                        chr(0x45).chr(0x52).chr(0x4D).chr(0xFF).chr(0xF0);
                $this->conn2=chr(0xFF).chr(0xFC).chr(0x01).chr(0xFF).chr(0xFC).
                        chr(0x22).chr(0xFF).chr(0xFE).chr(0x05).chr(0xFF).chr(0xFC).chr(0x21);
        }

        function ConnectError($num) {
                if ($this->show_connect_error) switch ($num) {
                case 1: echo '<br />[PHP Telnet] Connect failed: Unable to open network connection<br />'; break;
                case 2: echo '<br />[PHP Telnet] Connect failed: Unknown host<br />'; break;
                case 3: echo '<br />[PHP Telnet] Connect failed: Login failed<br />'; break;
                case 4: echo '<br />[PHP Telnet] Connect failed: Your server\'s PHP version is too low for PHP Telnet<br />'; 
				break;
                }
        }
}

//PHPTelnet   class  end
//require_once "PHPTelnet.php";

$filename=$argv[1];
if (file_exists($filename)) {
        //echo "The file $filename exists\n";
        $handle = fopen($filename, "r");
        while (!feof($handle)){
                $line = fgets($handle);
                if((trim($line)!=NULL)&&(substr($line,0,1)!="#")){
                        //echo "sssssssssssssssssite: ",$line,"\n";
                        $srvpr = explode(",", $line);
                        //print_r($srvpr);
                        ciscotelnet($srvpr[0],$srvpr[1],$srvpr[2],$srvpr[3],$srvpr[4],$srvpr[5]);
                }
        }
                fclose($handle);
} else {
    echo "The config file $filename does not exist\n";
}



function ciscotelnet($ts,$tu,$tp,$es,$fs,$fn)
{
$telnet=new PHPTelnet();
$result=$telnet->Connect($ts,$tu,$tp);
if ($result == 0) {
$telnet->DoCommand('enable', $result);
echo $result;
$telnet->DoCommand($es, $result);
echo $result;
$telnet->DoCommand('copy run ftp:', $result);
echo $result;
$telnet->DoCommand($fs, $result);
echo $result;
$telnet->DoCommand($fn, $result);
echo $result;
$telnet->Disconnect();
}
else
{
echo "ftp faild\n";
}
}

?>